home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / mac / MacFileDialogs.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  4.8 KB  |  139 lines

  1. package com.extensibility.mac;
  2.  
  3. import com.apple.mrj.macos.toolbox.FSSpec;
  4. import com.apple.mrj.macos.toolbox.Str255;
  5. import com.extensibility.app.DialogFactory;
  6. import com.extensibility.app.UI;
  7. import com.extensibility.mac.jdirect.AEDataModelFunctions;
  8. import com.extensibility.mac.jdirect.AEDescListStruct;
  9. import com.extensibility.mac.jdirect.AEDescStruct;
  10. import com.extensibility.mac.jdirect.FSSpecHandleStruct;
  11. import com.extensibility.mac.jdirect.FSSpecStruct;
  12. import com.extensibility.mac.jdirect.MemoryFunctions;
  13. import com.extensibility.mac.jdirect.NavDialogOptionsStruct;
  14. import com.extensibility.mac.jdirect.NavEventClosureUPP;
  15. import com.extensibility.mac.jdirect.NavObjectFilterClosureUPP;
  16. import com.extensibility.mac.jdirect.NavPreviewClosureUPP;
  17. import com.extensibility.mac.jdirect.NavReplyRecordStruct;
  18. import com.extensibility.mac.jdirect.NavTypeListStruct;
  19. import com.extensibility.mac.jdirect.NavigationConstants;
  20. import com.extensibility.mac.jdirect.NavigationFunctions;
  21. import java.awt.Component;
  22. import java.io.File;
  23.  
  24. public class MacFileDialogs extends DialogFactory implements NavigationConstants {
  25.    static final boolean navServicesAvailable = NavigationFunctions.NavServicesAvailable();
  26.  
  27.    protected File doAskFile(Component var1, String var2, String[] var3, String var4) {
  28.       return navServicesAvailable ? this.ns_doAskFile(var1, var2, var3, var4) : super.doAskFile(var1, var2, var3, var4);
  29.    }
  30.  
  31.    private File ns_doAskFile(Component var1, String var2, String[] var3, String var4) {
  32.       try {
  33.          short var5 = 0;
  34.          Object var20 = null;
  35.          NavReplyRecordStruct var7 = new NavReplyRecordStruct();
  36.          NavDialogOptionsStruct var8 = new NavDialogOptionsStruct();
  37.          var5 = NavigationFunctions.NavGetDefaultDialogOptions(var8);
  38.          if (var5 != 0) {
  39.             throw new Exception(String.valueOf("NavGetDefaultDialogOptions: error ").concat(String.valueOf(var5)));
  40.          } else {
  41.             int var9 = var8.getDialogOptionFlags();
  42.             var9 &= -129;
  43.             var9 |= 4;
  44.             var9 |= 2048;
  45.             var8.setDialogOptionFlags(var9);
  46.             if (var2 == null) {
  47.                String var10 = "txt";
  48.                if (var3.length > 0) {
  49.                   var10 = var3[0];
  50.                }
  51.  
  52.                var2 = UI.getString("dialog.open.title", UI.getFileTypeName(var10));
  53.             }
  54.  
  55.             var8.setMessage((new Str255(var2)).getBytes());
  56.             int var24 = MemoryFunctions.NewHandleClear(12);
  57.             NavTypeListStruct var11 = new NavTypeListStruct(var24);
  58.             var11.setOsTypeCount((short)1);
  59.             var11.setOsType(0, MacPlatform.TEXT_TYPE.toInt());
  60.             var11.setComponentSignature(MacPlatform.CREATOR_CODE.toInt());
  61.             var5 = NavigationFunctions.NavGetFile((AEDescStruct)var20, var7, var8, (NavEventClosureUPP)null, (NavPreviewClosureUPP)null, (NavObjectFilterClosureUPP)null, var11, 0);
  62.             if (var5 == 0 && var7.getValidRecord()) {
  63.                AEDescListStruct var25 = var7.getSelection();
  64.                AEDescStruct var13 = new AEDescStruct();
  65.                AEDataModelFunctions.AEGetNthDesc(var25, 1, 1718842144, new int[4], var13);
  66.                FSSpecStruct var14 = new FSSpecStruct(new FSSpecHandleStruct(var13.getDataHandle()), 0);
  67.                File var15 = (new FSSpec(var14)).toFile();
  68.                DialogFactory.setFileDirectory(var15.getParent());
  69.                return var15;
  70.             } else if (var5 != -128) {
  71.                throw new Exception(String.valueOf("NavGetFile: error ").concat(String.valueOf(var5)));
  72.             } else {
  73.                Object var12 = null;
  74.                return (File)var12;
  75.             }
  76.          }
  77.       } catch (Throwable var17) {
  78.          var17.printStackTrace();
  79.          System.err.flush();
  80.          Object var6 = null;
  81.          return (File)var6;
  82.       }
  83.    }
  84.  
  85.    protected File doAskNewFile(Component var1, String var2, String var3, String var4) {
  86.       File var5;
  87.       if (navServicesAvailable) {
  88.          var5 = this.ns_doAskNewFile(var1, var2, var3, var4);
  89.       } else {
  90.          var5 = super.doAskNewFile(var1, var2, var3, var4);
  91.       }
  92.  
  93.       return var5;
  94.    }
  95.  
  96.    private File ns_doAskNewFile(Component var1, String var2, String var3, String var4) {
  97.       try {
  98.          short var5 = 0;
  99.          Object var18 = null;
  100.          NavReplyRecordStruct var7 = new NavReplyRecordStruct();
  101.          NavDialogOptionsStruct var8 = new NavDialogOptionsStruct();
  102.          var5 = NavigationFunctions.NavGetDefaultDialogOptions(var8);
  103.          if (var5 != 0) {
  104.             throw new Exception(String.valueOf("NavGetDefaultDialogOptions: error ").concat(String.valueOf(var5)));
  105.          } else {
  106.             int var9 = var8.getDialogOptionFlags();
  107.             var9 |= 1;
  108.             var8.setDialogOptionFlags(var9);
  109.             if (var3 == null) {
  110.                var3 = UI.getString("dialog.open.title", UI.getFileTypeName(var2));
  111.             }
  112.  
  113.             var8.setMessage((new Str255(var3)).getBytes());
  114.             var8.setSavedFileName((new Str255(String.valueOf("untitled.").concat(String.valueOf(var2)))).getBytes());
  115.             var5 = NavigationFunctions.NavPutFile((AEDescStruct)var18, var7, var8, (NavEventClosureUPP)null, MacPlatform.TEXT_TYPE.toInt(), MacPlatform.CREATOR_CODE.toInt(), 0);
  116.             if (var5 == 0 && var7.getValidRecord()) {
  117.                AEDescListStruct var20 = var7.getSelection();
  118.                AEDescStruct var11 = new AEDescStruct();
  119.                AEDataModelFunctions.AEGetNthDesc(var20, 1, 1718842144, new int[4], var11);
  120.                FSSpecStruct var12 = new FSSpecStruct(new FSSpecHandleStruct(var11.getDataHandle()), 0);
  121.                File var13 = (new FSSpec(var12)).toFile();
  122.                DialogFactory.setFileDirectory(var13.getParent());
  123.                return var13;
  124.             } else if (var5 != -128) {
  125.                throw new Exception(String.valueOf("NavPutFile: error ").concat(String.valueOf(var5)));
  126.             } else {
  127.                Object var10 = null;
  128.                return (File)var10;
  129.             }
  130.          }
  131.       } catch (Throwable var15) {
  132.          var15.printStackTrace();
  133.          System.err.flush();
  134.          Object var6 = null;
  135.          return (File)var6;
  136.       }
  137.    }
  138. }
  139.